<template>
  <div id="app">

    <!-- <transition :enter-active-class='transitionName1' :leave-active-class='transitionName2'> -->
    <router-view v-if="!$route.meta.keepAlive" v-wechat-title="$route.meta.title" />
    <!-- </transition> -->

    <keep-alive>
      <router-view v-if="$route.meta.keepAlive" v-wechat-title="$route.meta.title" />
    </keep-alive>
  </div>
</template>

<script>
// import headerNav from './components/index_nav'
// import pop from './components/pop'
var wx = require("weixin-js-sdk");
import CONFIG from "./js/CONFIG.js";
export default {
  name: "App",
  data() {
    return {
      pop: false,
      transitionName1: "animated fadeIn", // 默认动态路由变化为slide-right
      transitionName2: "animated fadeOut"
    };
  },
  components: {
    // headerNav
    // pop
  },
  computed: {
    hasPop() {
      return this.$store.state.commonStore.hasPop;
    }
  },
  mounted() {
    var that = this;
    //固定安卓屏幕高度
    document.querySelector("#app").style.minHeight = window.innerHeight + "px";

    //路由动画切换
    this.$navigation.on("forward", (to, from) => {
      this.transitionName1 = "animated slideInRight entesd";
      this.transitionName2 = "animated slideOutLeft entesd";
    });
    this.$navigation.on("back", (to, from) => {
      this.transitionName1 = "animated slideInLeft entesd";
      this.transitionName2 = "animated slideOutRight entesd";
    });
    this.$navigation.on("replace", (to, from) => {
      this.transitionName = "animated fadeIn";
    });

    // router.beforeEach((to, from, next) => {
    //   if (to.path === "/login") {
    //     this.alert("登录过期，请求重新授权。", 2, () => {
    //       that.JumpToWeCaht();
    //     }).catch(res => {
    //       next("/login");
    //     });
    //   } else {
    //     next();
    //   }
    // });
  },
  created() {
    let that = this;
    // 加载微信签名配置信息
    let _url = encodeURI(window.location.href.split("#")[0]);
    // let _url = encodeURI('kkf.youwenyuedu.com:8082');

    that
      .getSignature(_url)
      .then(res => {
        console.log("=======微信签名=======" + JSON.stringify(res));
        let result = res.data;
        // 加载成功
        wx.config({
          debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来，若要查看传入的参数，可以在pc端打开，参数信息会通过log打出，仅在pc端时才会打印。
          appId: CONFIG.WeChat.appid, // 必填，公众号的唯一标识
          timestamp: result.timestamp, // 必填，生成签名的时间戳
          nonceStr: result.noncestr, // 必填，生成签名的随机串
          signature: result.signature, // 必填，签名，见附录1
          jsApiList: [
            "chooseWXPay",
            "scanQRCode", // 调起微信扫一扫接口
            "onMenuShareTimeline", // 分享到朋友圈
            "onMenuShareAppMessage", // 分享给朋友
            "onMenuShareQQ", // 分享到QQ
            "onMenuShareWeibo", // 分享到腾讯微博
            "onMenuShareQZone", // 分享到QQ空间
            "getLocation" // 获取地理位置
          ] // 必填，需要使用的JS接口列表，所有JS接口列表见附录2
        });

        wx.error(function(res) {
          // config信息验证失败会执行error函数，如签名过期导致验证失败，具体错误信息可以打开config的debug模式查看，也可以在返回的res参数中查看，对于SPA可以在这里更新签名。
          // that.layer("微信签名验证失败:" + res.errMsg);
          console.error("微信签名验证失败:" + JSON.stringify(res));
        });
      })
      .catch(err => {
        that.layer("微信签名验证失败!" + err);
      });

    wx.ready(function() {
      // config信息验证后会执行ready方法，所有接口调用都必须在config接口获得结果之后，config是一个客户端的异步操作，所以如果需要在页面加载时就调用相关接口，则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口，则可以直接调用，不需要放在ready函数中。
    });

    wx.error(function(res) {
      // config信息验证失败会执行error函数，如签名过期导致验证失败，具体错误信息可以打开config的debug模式查看，也可以在返回的res参数中查看，对于SPA可以在这里更新签名。
      console.warn(res);
    });
    // if (!this.getCache("token") || this.getCache("token") == "undefined") {
    //   // this.pop = true;
    //   this.alert("更多精彩,需要微信授权", 2, () => {
    //     this.JumpToWeCaht();
    //   });
    // }
  },
  methods: {
    JumpToWeCaht() {
      let THIS = this;
      let returnURL = CONFIG.WeChat.WeChatOauth;

      // THIS.setLCDATABEFORELOGO();

      let _uid = this.$route.query.yqid || 1;

      // return false
      window.location.href =
        "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" +
        CONFIG.WeChat.appid +
        "&redirect_uri=" +
        returnURL +
        "&response_type=code&scope=snsapi_userinfo&state=" +
        _uid +
        "#wechat_redirect";
    },
    setLCDATABEFORELOGO() {
      let THIS = this;
      // 自定义参数
      let LCDATABEFORELOGO = Base64.encode(
        JSON.stringify({
          url: window.location.href
        })
      );
      THIS.Tool.setCache("LCDATABEFORELOGO", LCDATABEFORELOGO);
    },
    // 在线获取签名
    getSignature(url) {
      let that = this;
      return that.http.get("/wx/getSignature?url=" + url);
    }
  }
};
</script>

<style lang="scss">
@import "./css/reset.css"; //css reset
@import "./css/tools.scss"; // scss tools
@import "./css/common.scss"; // 公共样式
@import "./css/index.scss"; // 边距及字体
@import "./css/animate.min.css";
@import "./css/font_450/iconfont.css";
@import "./css/font1/iconfont.css";
#app {
  font-family: "Avenir", Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  /* text-align: center; */
  color: #2c3e50;
  height: 100%;
  font-size: 0.14rem;
  /* margin-top: 60px; */
}
.mint-indicator-wrapper {
  //mint ui
  font-size: 0;
}
</style>
